import { URL } from "../eunms"
// import router from "../router"

const baseUrl = URL.LOCALURL

/*
 * path: 请求路径
 * method: 请求方法 默认get
 * data: 请求参数 默认为空
 * */
function requests<T>(path = "", data = {} as any, method = "GET", token = "") {
  return new Promise<T>(function (resolve, reject) {
    method = method.toUpperCase()

    // 默认请求头
    let requestHeader = {
      headers: {
        "content-type": "application/json",
        authorization: token,
      },
      mode: "cors",
      method,
    } as any

    // 如果是get请求
    if (method === "GET") {
      // 转换拼接get参数
      let esc = encodeURIComponent
      let queryParams = Object.keys(data)
        .map((k) => `${esc(data[k])}`)
        .join("/")
      if (queryParams) path += `/${queryParams}`
    } else {
      // 其他请求 放入body里面
      requestHeader.body = JSON.stringify(data)
    }

    // 可以在这封装一个回调函数，请求拦截

    // 发送请求并返回 promise 对象 注意 fetch不会拦截其他异常请求️
    fetch(`${baseUrl}${path}`, requestHeader)
      .then(
        // 可在这里封装 响应拦截函数
        (response) => {
          return response.json()
        }
      )
      .then((data) => {
        console.log(data)
        resolve(data)
        // if (0 == data.code) {
        //   resolve(data.data)
        // } else {
        //   router.push({ name: "404" })
        // }
      })
      .catch((e) => {
        console.log(e)
        reject(e)
      })
  })
}
export default requests